Conventionally, systems exist that collect information about program usage. However, the information is not 100% correct or very detailed. For example, not all information related to specific techniques, programs batched in the background, programs with a submit statement, or transaction statements will be covered. Furthermore, conventional systems are not capable of determining function modules, methods, or classes that are called or identifying executed subroutines or dynamically called functionalities. Instead, conventional systems can only provide a high level view and are not able to catch any of the programming logic of the execution of the programming elements.